//
//  SQLChainViewController.m
//  SQL演练
//
//  Created by Guo Rui on 2017/10/28.
//  Copyright © 2017年 GR Harry. All rights reserved.
//

#import "SQLChainViewController.h"
#import "SQLHandler.h"

@interface SQLChainViewController ()
@property (strong, nonatomic) SQLChain *chain;
@end

/**
  X 1. 减少字符串的编写.
     1.1 使用宏。
      1.2 使用c字符串。
 
 X 2. 字段声明简化。
 3. 数组使用的简化。
 X 4. 条件语句 逻辑关系函数
 5. 统计语句 简化。
 
 
 6. 无法插入二进制数据
 */


@implementation SQLChainViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.chain = [[SQLChain alloc] init];
    
//    [self createTable];
//    [self dropTable];
//    [self renameTable];
//    [self addcolunm];
    
    [self insert];
//    [self update];
//    [self del];
//    [self condition];
//    [self select];
//    [self orderby];
//    [self limit];
}

- (void)createTable
{
    self.chain.createTable(@"t_student").fieldsDefine(@"(id INTEGER PRIMARY KEY AUTOINCREMENT, name text NOT NULL)").end().output();
}

- (void)dropTable
{
    self.chain.dropTable(@"t_studnet").output();
}

- (void)renameTable
{
    self.chain.renameTable(@"t_student", @"t_stu").end().output();
}

- (void)addcolunm
{
    self.chain.addcolumn(@"t_student", @"address TEXT DEFAULT 60").end().output();
}

- (void)insert
{
    self.chain.insert(@"t_student").fields(@[@"id", @"name"]).values(@[@"?", @"?"]).end().output();
}

- (void)update
{
    //     self.chain.update(@"t_student").set(@[@"name", @"age"], @[@"?", @"?"]).end();

    self.chain.update(@"t_student").set(@[@"name", @"age"], @[@"jack", @1]).end();
    self.chain.output();
}

- (void)del
{
    self.chain.del(@"t_student").end().output();
}

- (void)condition
{
    self.chain.del(@"t_student").where(@"name = 'jack'").end().output();
}

- (void)select
{
    self.chain.select(@[@"*"]).from(@"t_class").end().output();
}

- (void)orderby
{
    self.chain.select(@[@"*"]).from(@"t_class").orderby(@"name ASC, id DESC").end().output();
}

- (void)limit
{
    self.chain.select(@[@"*"]).from(@"t_class").limit(0, 10).end().output();
}
@end
